#pragma once

class RRenderer;

class RRasterizerState
{
	friend class MaterialRequest;
private:
	GLenum		m_frontFace;
	GLenum		m_cullFace;
	GLenum		m_frontPolygonMode;
	GLenum		m_backPolygonMode;
	GLenum		m_colorMask;

	void		SetFrontFace(GLenum n);
	void		SetCullFace(GLenum n);
	void		SetFrontPolygonMode(GLenum n);
	void		SetBackPolygonMode(GLenum n);
	void		SetColorMask(GLenum n);

public:
	RRasterizerState();
	GLenum		GetFrontFace() const;
	GLenum		GetCullFace() const;
	GLenum		GetFrontPolygonMode() const;
	GLenum		GetBackPolygonMode() const;
	GLenum		GetColorMask() const;

	void		Bind() const;
};